iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
Modern Web

用 Python 玩 PDF,結合Django 變成一個網頁系統系列 第 7

[Day 07] 折線圖(Line Chart)

  • 分享至 

  • xImage
  •  

今天來講折線圖,也是一個常見的圖表,常用來一段時間的趨勢,也可以比較兩條以上的線的趨勢。

一樣先建立Drawing(畫布大小),再加上折線圖,HorizontalLineChart(折線圖類別),基本上跟長條圖參數差不多。

有一些參數可以設定
圖表資料的格式 兩層的List,可以放數個List,一個List 代表一個長條圖。

valueAxis.visibleGrid:這裡多顯示了裡面的線,可以更好看到值

還有其他屬性,可以查官方文件。

程式碼


from reportlab.platypus import SimpleDocTemplate

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.linecharts import HorizontalLineChart

drawing = Drawing(200, 100)
dataList = [
    [10, 20, 30, 40, 50, 60, 70, 80],
    [70, 6, 7, 58, 47, 65, 21, 63],
]

horizontalLineChart = HorizontalLineChart()
horizontalLineChart.data = dataList
categoryNames = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
horizontalLineChart.categoryAxis.categoryNames = categoryNames

horizontalLineChart.valueAxis.valueMin = 0
horizontalLineChart.valueAxis.valueStep = 10
horizontalLineChart.valueAxis.valueMax = 100
horizontalLineChart.lines[0].strokeWidth = 2
horizontalLineChart.lines[1].strokeWidth = 2
horizontalLineChart.valueAxis.visibleGrid = True
drawing.add(horizontalLineChart)

fileName = "example.pdf"
pdfTemplate = SimpleDocTemplate(fileName)
story = []
story.append(drawing)
pdfTemplate.build(story)

結果圖


參考資料:

如果有任何寫得不好的地方,請跟我說,謝謝。


上一篇
[Day 06] 長條圖(Bar Chart)
下一篇
[Day 08] 圓餅圖(Pie Charts)
系列文
用 Python 玩 PDF,結合Django 變成一個網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言